The present invention relates to systems and methods for testing application programs, and more particularly to systems and methods for testing application programs having multiple versions based on language.
A critical aspect to developing application programs is to ensure that it is free from programming errors or xe2x80x9cbugsxe2x80x9d. Developers of application programs therefore conduct extensive testing to xe2x80x9cde-bugxe2x80x9d the application program. One technique for de-bugging application programs is to use test scripts, which are computer programs that automatically test application programs for bugs. A test script allows a developer to automatically simulate mouse and keyboard activities targeted to drive the application program in a certain way. For example, a test script for automatically creating and sending a mail message may simulate the following steps: find an application program titled Outlook, click on the menu item xe2x80x9cNew Messagexe2x80x9d, find the new window with xe2x80x9cMessagexe2x80x9d in the title, type xe2x80x9cJohn Doexe2x80x9d in the xe2x80x9cTo:xe2x80x9d field, type xe2x80x9cApplication for a patentxe2x80x9d in the xe2x80x9cSubject:xe2x80x9d field, type some text in the main text control, click on the xe2x80x9cSendxe2x80x9d button, and click on the xe2x80x9cOKxe2x80x9d button. A testing program, such as Visual Test, reads this specification of events from the test script and sends a simulation of the events to the application program for testing. The developer may thereby see how the application program processes these events to determine whether the program is functioning properly and to de-bug the program if necessary.
Application programs are commonly written for use around the world and are available in different versions based on country and language. Each version of the application program must therefore be designed to conform to the language and customs of each country. Unfortunately, each version of the application program must be separately tested for bugs and a separate test script for each version of the program must be created. Typically, a master test script is prepared which is then manually translated into different test scripts for each version of the program. An application program may have as many as 40-60 different versions based on language. A like number of test scripts must therefore be created to test each version separately.
Automatic translation software techniques are not practical to translate the test scripts since different versions vary in the translation depending upon the use. For example, the button xe2x80x9cyesxe2x80x9d may translate differently in other languages depending upon the particular language. Further, the application program may be implemented in a mixed environment. For example, the Chinese version of Microsoft Office(copyright) may be implemented on an English version of Microsoft Windows(copyright) both of which are developed by Microsoft Corporation of Redmond, Wash. Thus, the translation may vary depending upon whether the command was for the operating system or the application program. Another problem with having different test scripts for each version of an application program is that the application program is continually changing as it is being developed. Accordingly, each time that the application program is changed, the test script for each version must also be changed. A considerable amount of developer time is spent in updating the test scripts.
It is therefore desirable to test each version of an application program more efficiently without requiring different test scripts to be created to test each version of the program. It is also desirable to provide a system and method to translate test scripts automatically so that it may test various versions of an application program. Such techniques would reduce the development time and cost for developing an application program.
A primary aspect of the invention provides a method and system for testing of different versions of application programs using a single test script. One or more dictionaries are used to provide translations of command strings from one language to the specific language of the application program. The test script may then be translated at run time using the dictionaries to allow the testing program to test the application program in accordance with the language of the application program. Fuzzy match logic may be used to provide appropriate language translation of the command string. A dictionary may be automatically updated at run time so that it may learn language translations of unknown command strings for future runs. Advantageously, the developer need only prepare a single test script in one language to test the various language versions of the application program. Although a separate dictionary is required for each language version, the same dictionaries may be used to translate test scripts for other application programs.
The present invention may be implemented as a set of wrapper functions for a testing program. The present invention may be an add-on to a testing program or may be incorporated within the testing program.